1
Processos Estaduais e Otimização de Chamada Final
AI019Lesson 7
00:00

Em Elixir, os processos são de curta duração por padrão; assim que uma função termina, o processo é encerrado. Para criar um processo persistente e com estado, usamos recursão para manter o processo ativo em um loop.

1. Otimização de Chamada Final (TCO)

Se a ação absolutamente final de uma função for chamá-la mesma, a VM do Erlang (BEAM) realiza Otimização de Chamada Final. Em vez de adicionar um novo quadro à pilha, ele simplesmente pula de volta para o início da função com novos argumentos.

def factorial(n, acc), do: _fact(n-1, acc*n) # OCF
def factorial(n), do: n * factorial(n-1) # NÃO OCF
lógica de saudação()chamada de saudação()OCF: Reutilizar Quadro da Pilha

2. Estado Persistente

O estado é mantido passando valores atualizados como argumentos para a chamada recursiva. Graças à OCF, esses argumentos substituem os parâmetros originais na pilha sem consumir memória adicional, permitindo que os loops sejam executados indefinidamente.

main.py
TERMINALbash — 80x24
> Ready. Click "Run" to execute.
>